package com.example.csmall.product.schedule;

import com.example.csmall.product.service.BrandService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class CacheSchedule {

    @Autowired
    BrandService brandService;

    int i = 0;

    //@Scheduled(fixedDelay = 2000) //计时计划的执行间隔，以上一次执行结束的截止时间来计算下一次任务的开始时间，以毫秒为单位
    //@Scheduled(fixedRate = 2000) //计时任务的执行间隔，以上一次起始时间来计算下一次任务的开启时间,以毫秒为单位
    //@Scheduled(cron = "0 42 19 * * *") //cron中为一个字符串格式 其中每个数值使用 进行分离，分别表示的值为秒 分 时 日 月 周 [年]
    //年可以写可以不写   其中*表示所有，如上述不管是那年哪月那天都会在19:42:0这个时间执行次方法.
    public void rebuildCache(){
        ++i;
        //当服务器启动时
        log.debug("Spring Boot项目提供的计时任务已经启动{}次",i);
        brandService.rebuildCache();
    }

}
